2165
7233
Quindi ho qualche problema a capire l'uso corretto di list :: sort () rispetto a un elenco di strutture. Ecco il codice pertinente:
struct student
{
char firstnm [20],
lastnm [20];
int id,
grado;
};
list  sList;
// Codice irrilevante ...
cout << "Inserisci il tuo nome, id e grado. (Es: myfirst mylast 0 12) \ n";
cin >> data.firstnm >> data.lastnm >> data.id >> data.grade;
sList.push_back (dati);
sList.sort ();
Il problema che sto cercando di risolvere è utilizzare sList.sort () per ordinare per id. Tuttavia, non ho idea di come passarlo correttamente in list :: sort (). Grazie in anticipo per qualsiasi aiuto / tempo!
EDIT: La soluzione è stata semplicemente l'aggiunta di questo alla mia struttura
Operatore bool <(const student & cmp) const {
return id 
                                
Dovresti dare un'occhiata a std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Esistono più definizioni di quella funzione e una in cui è possibile specificare ciò che si desidera ordinare.
Inoltre, dai un'occhiata a quel post, penso sia ciò di cui hai bisogno: https://stackoverflow.com/a/21234017/6663947
Modificare :
questo è un esempio di comparatore:
sList.sort ([] (const student & a, const student & b) {return a.id 
void sort (Confronta comp);
Supponendo che si desideri ordinare gli oggetti studente nell'elenco in base all'ID chiave in ordine crescente. Puoi definire l'operatore